
#include "TestContext.hpp"
#include "TestSecuApi_Utility.hpp"
#include "TestSecuTradeApi.hpp"
#include <iostream>
#include "t2sdk_interface.h"
#include <thread>
#include "TestCase.hpp"

using namespace std;

/*
版本				修改时间		修改人		修改单					修改内容
V6.1.0.3			20220114		施  凯		M202109070653		API支持客户端报单编号
V6.1.0.2			20210913		施  凯		M202109082503		API增加银行账户查询
V6.1.0.1			20210729		施  凯		M202107012886		API持仓查询增加市值字段输出
V6.1.0.0															统一版本到V6.1.0.0
*/

#ifdef _DEBUG
#define API_Test_VERSIONSTRING	("V6.1.0.3_debug" " "  __DATE__ " " __TIME__)
#else
#define API_Test_VERSIONSTRING	("V6.1.0.3" " "  __DATE__ " " __TIME__)
#endif



//获取版本
const char* GetVersion()
{
	return API_Test_VERSIONSTRING;
}


int main()
{
	TestSecuTradeApi* lpTradeApi = TestContext::GetTestTradeApi();
	lpTradeApi->RegisterSpi((CHSSecuTradeSpi *)TestContext::GetTestTradeSpi());
	int iRet = lpTradeApi->RegisterFensServer("", "");
	if (iRet != 0)
	{
		printf("%s\n", lpTradeApi->GetApiErrorMsg(iRet));
	}
	lpTradeApi->RegisterSubModel(HS_TERT_RESTART);//这里主推订阅模式根据实际需要设置
	iRet = lpTradeApi->Init("");//对接ust目前不需要填通讯证书
	if (iRet != 0)
	{
		printf(lpTradeApi->GetApiErrorMsg(iRet));
	}

	lpTradeApi->RegisterTestCase(TestContext::GetTestCase());

	TestCaseInterface * test_case = TestContext::GetTestCase();
	std::thread t(&TestCaseInterface::Run, test_case);

	TestContext::Start();
	lpTradeApi->Join();

	t.join();
	cout << "退出成功！\r\n"<< endl;

	return 0;
}
